package fr.utbm.gi.vi51.project.agent.body;

import javax.swing.Icon;

import org.janusproject.kernel.address.AgentAddress;

import fr.utbm.gi.vi51.framework.environment.AgentBody;
import fr.utbm.gi.vi51.project.agent.frustum.Frustum;

public abstract class UnitBody extends AgentBody {

	protected int health;
	protected int damage;
	protected int armor;
	protected int attackCooldown;
	protected int attackAnimationEnd;
	protected Icon currentIcon, normalIcon, attackIcon;
	protected Frustum frustum;

	public UnitBody(AgentAddress owner, double size, double maxLinearSpeed, double maxLinearAcceleration,
			double maxAngularSpeed, double maxAngularAcceleration) {
		super(owner, size, maxLinearSpeed, maxLinearAcceleration, maxAngularSpeed, maxAngularAcceleration);
	}

	public int getHealth() {
		return this.health;
	}

	public void setHealth(int health) {
		this.health = health;
	}

	public int getDamage() {
		return this.damage;
	}

	public void setDamage(int damage) {
		this.damage = damage;
	}

	public int getArmor() {
		return this.armor;
	}

	public void setArmor(int armor) {
		this.armor = armor;
	}

	public int getAttackCooldown() {
		return this.attackCooldown;
	}

	public int getAttackAnimationEnd() {
		return this.attackAnimationEnd;
	}

	public Icon getCurrentIcon() {
		return this.currentIcon;
	}

	public void setCurrentIcon(Icon currentIcon) {
		this.currentIcon = currentIcon;
	}

	public Frustum getFrustrum() {
		return this.frustum;
	}

	public Icon getNormalIcon() {
		return this.normalIcon;
	}

	public Icon getAttackIcon() {
		return this.attackIcon;
	}

	public abstract int getMaxHealth();

}
